package com.achen.direct;

import com.achen.utils.RabbitMQUtils;
import com.rabbitmq.client.*;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

/**
 * @author achen
 * @create 2021-07-23 2:51
 */
public class Customer {

    public static void main(String[] args) throws IOException, TimeoutException {
//        //创建连接mq的连接工厂对象
//        ConnectionFactory connectionFactory = new ConnectionFactory();
//
//        //创建连接rabbitmq的主机
//        connectionFactory.setHost("1.116.72.198");
//
//        //设置端口号
//        connectionFactory.setPort(5672);
//
//        //设置连接哪个虚拟主机
//        connectionFactory.setVirtualHost("/ems");
//
//        //设置访问虚拟主机的用户名和密码
//        connectionFactory.setUsername("ems");
//        connectionFactory.setPassword("123");
//
//
//        //获取连接对象
//        Connection connection = connectionFactory.newConnection();

        //获取连接对象
        Connection connection = RabbitMQUtils.getConnection();

        //获取连接中的通道
        Channel channel = connection.createChannel();

        //通过通道绑定对应消息队列
        channel.queueDeclare("helloworld", true, false, false, null);

        //消费消息
        //参数一：消费哪个队列的消息 队列名称
        //参数二：开始消息的自动确认机制
        //参数三：消费时的回调接口
        channel.basicConsume("helloworld", true, new DefaultConsumer(channel) {

            //最后一个参数：消息队列取出的信息
            public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {

                System.out.println("消息为:," + new String(body));
            }
        });


        //关闭通道
        //channel.close();

        //关闭连接
        //connection.close();
    }
}
